package com.jim.healio.graphrag.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "healio.graphrag")
public class GraphRAGProperties {

    private boolean enabled = true;
    
    private Neo4jConfig neo4j = new Neo4jConfig();
    
    private ChromaConfig chroma = new ChromaConfig();
    
    private EmbeddingConfig embedding = new EmbeddingConfig();

    @Data
    public static class Neo4jConfig {
        private String uri = "bolt://localhost:7687";
        private String username = "neo4j";
        private String password = "password";
        private int maxConnectionPoolSize = 10;
        private int connectionTimeoutMs = 5000;
    }

    @Data
    public static class ChromaConfig {
        private String host = "localhost";
        private int port = 8000;
        private String collectionName = "medical_knowledge";
        private int maxRetries = 3;
        private int timeoutMs = 30000;
    }

    @Data
    public static class EmbeddingConfig {
        private String model = "text-embedding-v2";
        private int dimension = 1536;
        private int batchSize = 100;
    }
} 